<?php 
	/**
	* !ONE CLASS TO RULE THEM ALL!
	* Klass som kör alla kontroller och som hämtar/visar nödvändig information.
	*/
	class MasterController
	{
		public function DoControll()
		{
			// Skapar nya nödvändiga objekt.
			$dbConfig = new DBConfig();
			$database = new Database($dbConfig);
			$validate =  new Validate();
			
			$loginHandler = new LoginHandler($database);
			$registerHandler = new RegisterHandler($database, $validate);
			
			$loginView = new LoginView();
			$registerView = new RegisterView();
			$pageView = new PageView();

			$loginController = new loginController();
			$registerController = new RegisterController($validate);

			// $content kommer innehålla det som skrivs ut på sidan som visas för användaren.
			$content = "";

			// Kör kontrollerna.
			$loginControllerDoLogInControll = $loginController->DoLogInControll($loginHandler, $loginView);
			$registerControllerDoRegisterControll = $registerController->DoRegisterControll($loginHandler, $registerHandler, $registerView);

			// Kontrollerar vad som ska visas.
			if ($loginHandler->UserIsLoggedIn()) {
				
				$content = $pageView->OutputLoggedInView($loginControllerDoLogInControll);
				$allUsers = $registerHandler->GetUsersFromDatabase();
				$content .= $registerView->ListAllUsers($allUsers); // punkt för att vi vill lägga till info på vår content.

			} else{
				$content = $pageView->OutputLoggedOutView($loginControllerDoLogInControll, $registerControllerDoRegisterControll);
			}

			// Stänger vår databaskoppling och retunerar $content.
			$database->CloseConnection();
			$title = "Laboration 3";
			return $pageView ->OutputXhtml($title, $content);
		}
	}	
 ?>